/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.scrumpmt.web;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.scrumpmt.domain.Colaborador;
import org.scrumpmt.domain.Proyecto;
import org.scrumpmt.domain.Tarea;
import org.scrumpmt.ejb.ColaboradorFacade;
import org.scrumpmt.ejb.ProyectoFacade;
import org.scrumpmt.ejb.TareaFacade;

/**
 *
 * @author aljiru
 */
@ManagedBean(name = "listadoColaboradores")
@SessionScoped
public class ListadoColaboradoresBean {

    private ColaboradorFacade colaboradorFacade = lookupColaboradorFacade();
    private ProyectoFacade proyectoFacade = lookupProyectoFacade();
//    private TareaFacade tareaFacade  = lookupTareaFacade();
    private List<Colaborador> listado;
    private static final Logger log = Logger.getLogger(ListadoColaboradoresBean.class.getName());

    /**
     * Creates a new instance of ListadoProductosBean
     */
    public ListadoColaboradoresBean() {
        listado = colaboradorFacade.findAll();
    }

    public List<Colaborador> getListado() {
        return listado;
    }

    public void setListado(List<Colaborador> listado) {
        this.listado = listado;
    }

    private ColaboradorFacade lookupColaboradorFacade() {
        try {
            Context c = new InitialContext();
            return (ColaboradorFacade) c.lookup("java:global/ScrumPMT/ScrumPMT-ejb/ColaboradorFacade!org.scrumpmt.ejb.ColaboradorFacade");
        } catch (NamingException ne) {
            log.log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
    
    private ProyectoFacade lookupProyectoFacade() {
        try {
            Context c = new InitialContext();
            return (ProyectoFacade) c.lookup("java:global/ScrumPMT/ScrumPMT-ejb/ProyectoFacade!org.scrumpmt.ejb.ProyectoFacade");
        } catch (NamingException ne) {
            log.log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
    
//    public List<Colaborador> getListadoFiltradoTarea(String t) {
//        List<Colaborador> misColab = new ArrayList<Colaborador>();
//        Tarea tarea = tareaFacade.findById(t);
//        for (Colaborador c : this.listado){
//            if(c.getTareaCollection().contains(tarea))
//                misColab.add(c);
//        }
//        return misColab;
//    }  
    public Colaborador getColByID(Long n) {
        for (Colaborador cc : colaboradorFacade.findAll())
            if (cc.getId()==n)
                return cc;
        return null;
    }
    
    public List<Colaborador> getListadoFiltradoProducto(String p) {
        List<Colaborador> misColab = new ArrayList<Colaborador>(); 
        Proyecto proyecto = null;
        for (Proyecto pro : proyectoFacade.findAll()){
            if(pro.getId()== Long.parseLong(p))
                proyecto=pro;
        }
        for (Colaborador c : this.listado){
            if(c.getProyectoCollection().contains(proyecto))
                misColab.add(c);
        }
        return misColab;
    }

//    private TareaFacade lookupTareaFacade() {
//        try {
//            Context c = new InitialContext();
//            return (TareaFacade) c.lookup("java:global/ScrumPMT/ScrumPMT-ejb/TareaFacade!org.scrumpmt.ejb.TareaFacade");
//        } catch (NamingException ne) {
//            log.log(Level.SEVERE, "exception caught", ne);
//            throw new RuntimeException(ne);
//        }
//    }
}
